/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interface;

import Dominio.Controladora;
import Dominio.Usuario;
import java.util.List;

/**
 *
 * @author Agustin
 */
public class ModeloTablaUsuarios {

    public ModeloTablaUsuarios(int x, String especialidad, int vhu) {
        if (x == 0) {
            usuarios2 = Controladora.getInstance().traerContactos(Controladora.getInstance().getUsuario().getNombre_usuario());
            cabeceras = cargarColumnas(0);
            usuarios = cargarDatos();
        } else if (x == 1) {
            usuarios2 = Controladora.getInstance().selectEmpleados(Controladora.getInstance().getEmpresa().getRut() + "", 0 + "");
            cabeceras = cargarColumnas(0);
            usuarios = cargarDatos();
        } else if (x == 2) {
            usuarios2 = Controladora.getInstance().selectEmpleados(Controladora.getInstance().getEmpresa().getRut() + "", 1 + "");
            cabeceras = cargarColumnas(0);
            usuarios = cargarDatos();
        } else if (x == 3) {
            usuarios2 = Controladora.getInstance().selectEmpleados(Controladora.getInstance().getEmpresa().getRut() + "", 2 + "");
            cabeceras = cargarColumnas(1);
            usuarios = cargarDatos();
        } else if (x == 4) {
            usuarios2 = Controladora.getInstance().selectUsuarioMasCotizado();
            cabeceras = cargarColumnas(2);
            usuarios = cargarDatos();
        } else if (x == 5) {
            usuarios2 = Controladora.getInstance().traerUsuarios("");
            cabeceras = cargarColumnas(3);
            usuarios = cargarDatos();
        } else if (x == 6) {
            usuarios2 = Controladora.getInstance().selectSujerenciasAContratar(especialidad, vhu + "");
            cabeceras = cargarColumnas(2);
            usuarios = cargarDatos();
        } else {
            usuarios2 = Controladora.getInstance().selectEmpleados(x + "", 0 + "");
            cabeceras = cargarColumnas(0);
            usuarios = cargarDatos();
        }
    }

    private Object[][] cargarDatos() {

        try {
            usuarios = new String[usuarios2.size()][cabeceras.length];
            if (cabeceras.length == 4) {
                if (usuarios2.get(0).getNombre_usuario() != null) {
                    for (int x = 0; x < usuarios2.size(); x++) {
                        usuarios[x][0] = usuarios2.get(x).getNombre_usuario();
                        usuarios[x][1] = usuarios2.get(x).getNombre();
                        usuarios[x][2] = usuarios2.get(x).getEspecialidad().getNombre();
                        usuarios[x][3] = usuarios2.get(x).getExperiencia() + "";
                    }
                }
            } else {
                if (cabeceras[4].equals("Cantidad")) {
                    if (usuarios2.get(0).getNombre_usuario() != null) {
                        for (int x = 0; x < usuarios2.size(); x++) {
                            usuarios[x][0] = usuarios2.get(x).getNombre_usuario();
                            usuarios[x][1] = usuarios2.get(x).getNombre();
                            usuarios[x][2] = usuarios2.get(x).getEspecialidad().getNombre();
                            usuarios[x][3] = usuarios2.get(x).getExperiencia() + "";
                            usuarios[x][4] = usuarios2.get(x).getCalificaciones().size() + "";
                        }
                    }
                } else if (cabeceras[4].equals("VHU")) {
                    if (usuarios2.get(0).getNombre_usuario() != null) {
                        for (int x = 0; x < usuarios2.size(); x++) {
                            usuarios[x][0] = usuarios2.get(x).getNombre_usuario();
                            usuarios[x][1] = usuarios2.get(x).getNombre();
                            usuarios[x][2] = usuarios2.get(x).getEspecialidad().getNombre();
                            usuarios[x][3] = usuarios2.get(x).getExperiencia() + "";
                            usuarios[x][4] = usuarios2.get(x).getVHU() + "";
                        }
                    }
                } else if (cabeceras[4].equals("Contraseña")) {
                    if (usuarios2.get(0).getNombre_usuario() != null) {
                        for (int x = 0; x < usuarios2.size(); x++) {
                            usuarios[x][0] = usuarios2.get(x).getNombre_usuario();
                            usuarios[x][1] = usuarios2.get(x).getNombre();
                            usuarios[x][2] = usuarios2.get(x).getEspecialidad().getNombre();
                            usuarios[x][3] = usuarios2.get(x).getExperiencia() + "";
                            usuarios[x][4] = usuarios2.get(x).getContraseña();
                        }
                    }
                }
            }
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }

        return usuarios;
    }

    private String[] cargarColumnas(int x) {
        if (x == 1) {
            cabeceras = new String[5];
            cabeceras[4] = "Cantidad";
        } else if (x == 2) {
            cabeceras = new String[5];
            cabeceras[4] = "VHU";
        } else if (x == 3) {
            cabeceras = new String[5];
            cabeceras[4] = "Contraseña";
        } else {
            cabeceras = new String[4];
        }
        cabeceras[0] = "Nombre Usuario";
        cabeceras[1] = "Nombre";
        cabeceras[2] = "Especialidad";
        cabeceras[3] = "Experiencia";


        return cabeceras;

    }
    private List<Usuario> usuarios2;
    private Object usuarios[][];
    private String cabeceras[];

    public String[] getCabeceras() {
        return cabeceras;
    }

    public Object[][] getUsuarios() {
        return usuarios;
    }

    public void setUsuarios(Object[][] usuarios) {
        this.usuarios = usuarios;
    }
}
